﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Controls;
using Elysium.Demo.Configuracion.Empresa;
using Elysium.Demo.PuntoVenta.Transacciones;
using SIIE_ERP.Codigo;

namespace Elysium.Demo
{
    /// <summary>
    /// Lógica de interacción para Menu_Configuracion.xaml
    /// </summary>
    public partial class MainWindowImagen : UserControl
    {
        private UsuarioActivo _sesion;
        private int Id_Valor = 1;

        public MainWindowImagen(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;

            CargarDatos();
        }

        private void AbrirLinkDatos_Click(object sender, RoutedEventArgs e)
        {
            MyGrid Actual = ((FrameworkElement)sender).DataContext as MyGrid;

            Elysium.Demo.Informes.Seleccion_Inventarios_Existencias MiReporte_Existencias = new Elysium.Demo.Informes.Seleccion_Inventarios_Existencias();
            MiReporte_Existencias._sesion = this._sesion;

            MiReporte_Existencias.Combo_ArticulosAutoComplete.Visibility = System.Windows.Visibility.Hidden;
            MiReporte_Existencias.Button_DeseleccionArticulo.Visibility = System.Windows.Visibility.Hidden;
            MiReporte_Existencias.LabelArticulo.Visibility = System.Windows.Visibility.Hidden;
            MiReporte_Existencias.ButtonRegresar.Visibility = System.Windows.Visibility.Hidden;

            MiReporte_Existencias.CargarCombos();
            MiReporte_Existencias.Id_Articulo = Actual.Id;
            MiReporte_Existencias.CargarDatos();

            System.Windows.Window window = new System.Windows.Window
            {
                Title = "Costo de Inventarios",
                Content = new ScrollViewer()
                {
                    Content = MiReporte_Existencias,
                    HorizontalScrollBarVisibility = ScrollBarVisibility.Auto,
                    VerticalScrollBarVisibility = ScrollBarVisibility.Auto
                },
                Height = 585,
                Width = 1335,
                WindowStyle = System.Windows.WindowStyle.ToolWindow,
                ResizeMode = ResizeMode.CanResize,
                WindowState = WindowState.Normal,
                WindowStartupLocation = WindowStartupLocation.CenterScreen,
                Icon = new BitmapImage(new Uri("pack://application:,,,/Imagenes/SIE.ico")),
            };

            window.Show();
        }

        public void CargarDatos() 
        {            
            var DatosMinimos = new SIIE_ERP.BaseDatos.Inventarios.dbo_Fact_Existencias(_sesion.RFC, _sesion.UserName).Get_InventarioFaltante().Rows;
            var DatosMaximo = new SIIE_ERP.BaseDatos.Inventarios.dbo_Fact_Existencias(_sesion.RFC, _sesion.UserName).Get_InventarioExcedente().Rows;

            DatosDataGrid_Minimo.Items.Clear();
            DatosDataGrid_Maximo.Items.Clear();

            foreach (DataRow d in DatosMinimos)
            {
                var Id = d["Id_Articulo"].ToString();
                var Clave = d["Clave"].ToString();                
                var Nombre = d["Nombre"].ToString();
                var UM = d["UM"].ToString();
                var Cantidad = d["CantidadSum"].ToString();
                var Stock_Minimo = d["Stock_Minimo"].ToString();
                var Stock_Maximo = "0";
                var Diferencia = d["Diferencia"].ToString();

                DatosDataGrid_Minimo.Items.Add(new MyGrid() { Cantidad = Double.Parse(Cantidad), Clave = Clave, Diferencia = Double.Parse(Diferencia), Id = Int32.Parse(Id), Nombre = Nombre, UM = UM, Stock_Maximo = Double.Parse(Stock_Maximo), Stock_Minimo = Double.Parse(Stock_Minimo) });
            }
            
            foreach (DataRow d in DatosMaximo)
            {
                var Id = d["Id_Articulo"].ToString();
                var Clave = d["Clave"].ToString();
                var Nombre = d["Nombre"].ToString();
                var UM = d["UM"].ToString();
                var Cantidad = d["CantidadSum"].ToString();
                var Stock_Minimo = "0";
                var Stock_Maximo = d["Stock_Maximo"].ToString();
                var Diferencia = d["Diferencia"].ToString();

                DatosDataGrid_Maximo.Items.Add(new MyGrid() { Cantidad = Double.Parse(Cantidad), Clave = Clave, Diferencia = Double.Parse(Diferencia), Id = Int32.Parse(Id), Nombre = Nombre, UM = UM, Stock_Maximo = Double.Parse(Stock_Maximo), Stock_Minimo = Double.Parse(Stock_Minimo) });
            }

            CargaGrid_CRM();
        }

        private void Combo_Valor_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
        {
            if (_sesion != null)
            {
                Id_Valor = Int32.Parse(((ComboBoxItem)Combo_Valor.SelectedItem).Tag.ToString());

                CargaGrid_CRM();
            }
        }

        private void CargaGrid_CRM()
        {
            var Datos_CRM = new SIIE_ERP.BaseDatos.CRM.Transacciones.dbo_Trans_Actividad(_sesion.RFC, _sesion.UserName).Get_Actividades_Home(Id_Valor).Rows;

            DatosDataGrid_CRM.Items.Clear();

            foreach (DataRow d in Datos_CRM)
            {
                var Id = d["Id_Actividad"].ToString();
                var ImagenPath = d["ImagenPath"].ToString();
                var Actividad = d["Nombre"].ToString();
                var FechaInicio = d["Fecha_Actividad"].ToString();
                var Horas = d["TotalHoras"].ToString();

                DatosDataGrid_CRM.Items.Add(new MyGrid_CRM() { Actividad = Actividad, FechaInicio = FechaInicio, Horas = Horas, Id = Int32.Parse(Id), ImagenPath = ImagenPath });
            }
        }
    }

    class MyGrid
    {
        public int Id { get; set; }
        public string Clave { get; set; }        
        public string Nombre { get; set; }
        public string UM { get; set; }
        public double Cantidad { get; set; }
        public double Stock_Minimo { get; set; }
        public double Stock_Maximo { get; set; }
        public double Diferencia { get; set; }        
    }

    class MyGrid_CRM
    {
        public int Id { get; set; }
        public string ImagenPath { get; set; }
        public string Actividad { get; set; }
        public string FechaInicio { get; set; }
        public string Horas { get; set; }        
    }
}



